Method, algorithm, and computer program for targeting messages including advertisements in an interactive measurable medium

ABSTRACT

Techniques for improving and optimizing or attempting to optimize performance of messaging campaigns, particularly to marketing campaigns in which advertisements or other messages are distributed over an interactive measurable medium. When message is an advertisement, campaign involves a list of ad alternatives and a target customer population. Goal of message manager or marketing manager is to allocate ad alternatives to customer population to optimize business objectives such as maximizing the number of positive responses received. This is achieved by segmenting customer population into segments and then finding best allocation of ad alternatives for each segment. The number of segments and grouping of a customer population changes at different stages of the campaign. When the message is other than an advertisement, goal is to allocate messages to optimize analogous business or campaign objectives, typically measured by the number of successes or successful responses.

RELATED APPLICATIONS

U.S. patent application Ser. No. 09/586,394, filed Jun. 2, 2000 andentitled System and Method for Optimizing The Performance of Email andOther Splash Page Campaigns; U.S. patent application Ser. No.09/586,387, filed Jun. 2, 2000 and entitled Method, Algorithm, andComputer Program for Optimizing the Performance of Messages IncludingAdvertisements in an Interactive Measurable Medium; and U.S. patentapplication Ser. No. 09/586,393, filed Jun. 2, 2000 entitled System,Method and Operating Model for Optimizing The Performance of Messages InAn Interactive Measurable Medium. U.S. Patent Application Ser. No.60/173,689 filed Dec. 29, 1999 entitled Optimizing the Performance ofEntails. Each of the above referenced patent applications are herebyincorporated by reference.

FIELD OF THE INVENTION

This invention relates generally to methods, algorithms, and computersoftware programs for optimizing the performance of advertisements andother messages or content, and more particularly to methods, algorithms,and computer software programs for optimizing the performance ofadvertisements, messages, and other content in an interactive measurablemedium such as a global network of interconnected information devicesand appliances, and most particularly to optimization of performance ofbanner ads presented on internet web sites.

BACKGROUND

This invention relates to method, procedure, algorithm, and computerprogram for improving and attempting to optimize the performance ofmarketing campaigns in which advertisements or other messages aredistributed over an interactive measurable medium such as the Internet.When the message is an advertisement, the campaign involves a list of adalternatives and a target customer population. The goal of the marketeris to allocate the ad alternatives to the customer population tooptimize business objectives such as maximizing the number of responsesreceived. When the message is other than an advertisement, the goal isto otherwise allocate messages to optimize analogous business message orother message campaign objectives, typically measured by the number ofsuccesses or successful responses. In this description, the term “ad”has the same meaning and is used interchangeably with the term“advertisement”.

In large part due to the particular applicability of the invention toadvertisements on the Internet, this background description focuses onInternet advertising to establish one context of the invention and todifferentiate the invention from conventional systems and methods. It isto be understood however, that the invention is not to be interpreted tobe limited only to an Internet advertising environment or to advertisingenvironments alone no matter what the media, rather the inventionpertains to a broad spectrum of message and messaging contexts in or onvarious interactive media.

Various systems currently exist for the delivery and tracking ofadvertisements on the Internet, for instance, ad servers for serving andtracking “banner ads” on a web page. The users of these ad delivery orad server systems have access to data on the performance of all the adson all the locations. This data is updated by the delivery and trackingsystem on a periodic basis. The users are also provided with an array ofparameters to configure the delivery and tracking system. In a typicalconventional situation, an advertiser buys advertising space (ad space)on a number of web sites. The advertising space buy on each web siteconsists of a number of categories. Such categories may correspond todifferent sections within that web site, where a section is a specificweb page or a set of related web pages within the site. A category mayalso correspond to keywords searched by a customer on a search engine.The term “zone” will be used to represent a unique site and categorycombination. There may typically be a number of banners that anadvertiser wishes to deploy across these zones. A banner is either agraphic image that announces the name or identity of a site or is anadvertising image. An impression occurs when an Internet visitor sees abanner. A clickthrough occurs when a visitor to a zone clicks on abanner. This redirects the visitor to the page on the advertiser's website.

The fraction of impressions that should be allocated to a particularbanner alternative for a zone is an important parameter that theadvertiser (or other messaging entity) can select and modify to boostthe advertising campaign performance.

Impressions can occur at any time—whenever someone visits theappropriate page of a web site. However, the reports are typicallyupdated at discrete times. We will call the intermediate time betweentwo reports a stage. At the end of each stage, the results are availablefor that stage. In particular, the following information is availablefor each banner for a given zone: (1) the number of impressionsdelivered during a stage, and (2) the number of clickthroughs generatedduring a stage.

Additionally this information (that is, the number of impressionsdelivered during any particular stage or stages, and number ofclickthroughs generated during any particular stage or stages, and thelike) may be available separately for different characteristics of thevisitor population. When a visitor arrives at a website, a variety ofvisitor profiling information may be available. This information mayinclude, for example:

-   -   Data based on the current visit. Examples of this type of        profiling information include the time of the visit, the type of        browser used by the visitor, and the IP address.    -   Data based on an earlier visit. An example is data from a        registration form that was filled out by the visitor on an        earlier visit.    -   Data from external sources. For example, an external customer        database may provide data on the purchase history of the        visitor.        Profile information in each list above is exemplary and not        intended to be exhaustive. The data for each profiling attribute        provides an opportunity for customizing the ad banner or other        message shown to each campaign visitor. By selecting different        banners or other messages for different visitor profiles, the        overall ad or message campaign performance can be improved.

In one embodiment, visitors can be classified into market segments basedon this data. For example, segments based on age or income might bedefined. The inventive method and algorithms can be used in conjunctionwith this type of market segmentation process. In particular, theinvention can be applied to each segment independently. When a visitorarrives, he/she is assigned to a segment. Then the invention restrictedto that segment is applied to the visitor.

This aspect of the invention relates to an algorithm to improve anadvertising campaign's performance by dividing the space of customerpopulation characteristics into multiple segments. Visitors belonging toone segment may, for example, be shown different ads or presented withdifferent messages than visitors belonging to other segments. Segmentsmay be identified based on measured response of visitors to differentadvertisements, messages, or other content.

An exemplary scenario illustrating the opportunity to customize the ador other message is now described by way of example. This exemplary datapertains to a test campaign involving thirty banners. This data issorted by the home states of the visitors. Using this data, theclick-through rate of each banner in each of twenty-one states isestimated. (In this particular test data scenario, too little data areavailable to estimate click-through rates for all thirty banners in theremaining states). Therefore, for each of the twenty-one states one canidentify the banner that achieved the highest click-through rate. Theresults of this scenario are summarized as a matrix of State versusbanner in FIG. 4. Here rows correspond to the twenty-one states andcolumns to the thirty banners. The best banner in each state ishighlighted. This figure illustrates that in general, different bannersare preferred in different states. In particular, no one banner is bestin all the states (or even in half of the states). Yet, if one were toignore the home states of the visitors during this campaign, one wouldbe forced to serve the same set of banners in all states. In thisexample the improvement that can be obtained by using the best bannerfor each state as opposed to the best overall banner is approximately60%. This suggests that one can obtain significant performanceimprovements by using visitor-profiling data.

Ad servers or message servers generate reports that provide informationabout the impressions and clicks for different banners for one or morevisitor attributes. These reports are provided in printed form or in theelectronic equivalent of printed form, and are manually analyzed bytrained analysis personnel to derive new, improved advertisementconfigurations. For example, they are analyzed in an attempt to optimizethe clickthroughs generated by a pool of banner alternatives for a givenzone, a given frequency level, and the like configuration information.This manual process is tedious and error-prone and has an inherent delaybetween the period of data collection and the time new advertisementsare to be placed because of the large amount of data to be analyzed andthe large number of parameters to be modified. Even if errors are notmade and the user is able to overcome the tedium of the process, it isunlikely to yield optimal or even near-optimal recommendations foradvertisement configurations. This is especially true in light of thetypical delay of from a day to a week that elapses between datacollection, analysis, and a new or modified ad campaign based on theanalysis in conventional systems and methods.

Optimization to provide an effective advertising campaign is in essencea multi-dimensional optimization problem but that involves much more,that by-and-large cannot be timely solved using conventional tools,methods, or systems. It is noted that these problems exist substantiallyindependent of the type of advertisement or message, and that suchissues and problems exist relative to advertisements for products andservices, political campaigns, ballot measures and initiatives, mediaprogramming, lobbying, surveys, polling, news headlines, sports scores,as well as other directed marketing, promotions, surveys, news,information, other content generally, and the like.

Therefore, there remains a need for an automated system for optimizingallocation parameters for advertisement alternatives or messagealternatives. There also remains a need for an automated system andmethod for rapidly and efficiently executing the optimized allocationparameters to place the advertisement or message on the Internet orother local or global communication system. More particularly thereremains a need for an optimization procedure or algorithm that utilizesavailable message performance information (for example, ad performanceinformation) and generates recommendations for maintaining goodperformance or for improving performance during a subsequent stage ofthe campaign or optimizing performance of the entire campaign.

There also remains a need for a system and method that can learn andoptimize across the various other parameters that can be reconfigured inadvertisement delivery systems also commonly referred to as ad servers.For example, there remains a need for an ad server system and methodthat permits an advertiser to display different banners (or othercontent or messages) based on a time-of-day user web browsing profilewhich may include geographic location information, demographicinformation, or the like, as well as other user targeting information.

There also remains a need for an operating model that provides theoptimized allocations for banner ad alternatives or message alternativesautomatically on an interconnected network of computers or otherinformation devices or appliances without significant humanintervention.

These and other needs in conventional systems and methods are solved bythe inventive system and method, particularly by the inventiveoptimization method and algorithm and computer software implementationsof the inventive optimization algorithm and method.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 shows an exemplary computer system that may be used inconjunction with the inventive methods, procedures, computer programsand computer program products, and algorithms.

FIG. 2 is a flowchart that illustrates one embodiment of theoptimization method, procedures, and algorithms.

FIG. 3 is a flowchart that illustrates one embodiment of thesegmentation method, procedures, and algorithms.

FIG. 4 is a diagrammatic illustration showing an example where the bestbanner to be shown for optimal performance varies by the geographicallocation of the visitor.

FIG. 5 is a diagrammatic illustration showing an exemplary way ofvisualizing the performance variation of banners for different segmentsof the population.

FIG. 6 is a diagrammatic illustration showing one embodiment of arecursive-division approach for deriving high-performing segmentationsaccording to the invention.

SUMMARY

The invention provides method, procedure, algorithm, system, andcomputer program for improving and attempting to optimize theperformance of messaging campaigns, particularly to marketing campaignsin which advertisements or other messages are distributed over aninteractive measurable medium such as the Internet When the message isan advertisement, the campaign involves a list of ad alternatives and atarget customer population. The goal of the message manager or marketingmanager is to allocate the ad alternatives to the customer population tooptimize business objectives such as maximizing the number of positiveresponses received. This is achieved at least in part by segmenting thecustomer population into several segments and then finding the bestallocation of the ad alternatives for each segment. The number ofsegments and the grouping of a customer population changes at differentstages of the campaign. When the message is other than an advertisement,the goal is to allocate messages to optimize analogous business orcampaign objectives, typically measured by the number of successes orsuccessful responses.

The invention also provides method, procedure, algorithm, system, andcomputer program for segmenting a customer population based on theperformance of advertisements or messages. The number of segments andthe grouping of a customer population changes at different stages of thecampaign, as more performance information is available.

An optimization procedure is implemented on a computer that isprogrammed to retrieve message performance information and to generaterecommended message allocations for a next stage in a multistagemessaging campaign to achieve messaging goals. A segmentation procedureis implemented on a computer that is programmed to retrieve messageperformance information and to generate segmentations for a next stagein a multistage messaging campaign to achieve messaging goals. In oneaspect the invention provides a method for improving the stage-to-stageperformance of a message in a multi-stage message campaign in aninteractive measurable medium. In another aspect the invention providesa method for segmenting the target population into segments based on theunderlying performance of different messages in the message campaign.The interactive measurable medium may be, for example, the Internet orother distributed set of interconnected computer or informationappliances. The measurable quality of this medium lies in part on itsability to measure responses to messages of different types. The methodsinclude reading the prior stage message state pertaining to a priorstage in a message campaign, where the prior stage message stateincludes a cumulative number of trials and a cumulative number ofsuccesses for a particular message at the end of the prior stage. Themessage performance results representing message trials and messagesuccesses from the previous stage based on the prior stage state arethen read; and a current (or new) message state is computed on the basisof the prior stage message state and the message performance results.Finally, a current (or new or updated) message allocation and/or targetpopulation segmentation is generated based on the current message state.Normally, the newly determined current message state is stored as priorstage state for a next iteration of the procedure. Desirably, butoptionally, the cumulative number of trials and the cumulative number ofsuccesses include discounted cumulative number of trials and discountedcumulative number of successes; and generating a current messageallocation includes applying a message allocation constraint. Theseinventive procedures may be applied to various messages including forexample, web site banner advertisements, electronic advertisementsgenerally, email messages and promotions, and the like. In oneembodiment, the messages are interne web site banner ads, trials areimpressions of the ads presented to the user, and successes are measuredby clickthroughs from the banner ad to the web site associated with thebanner ad.

Computer system, computer program, and computer program productassociated with the inventive method and procedures are also provided bythe invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The invention provides system, apparatus, method, computer program, andcomputer program product for monitoring and improving the performance ofmessages communicated over an interactive measurable medium, such as theInternet. The term optimizing is used to describe the attempt to improveperformance though those workers having ordinary skill in the art willappreciate that while there may be only a single “optimum” which may notalways be attained, there are many degrees of performance improvementthat may be obtained. As used in this description, optimizationconveniently means improvement rather than requiring attainment of anysingle optimum value as well as actually obtaining an optimum andidentifying it as such. Put differently, optimization refers toprocedures, algorithms, and other attempts to attain optimum performancerather than requiring that the optimum performance be attained.

Sectional headers provided in this description are provided merely forthe purpose of assisting the reader in understanding where a primarydescription of a particular aspect of the invention is described. It isunderstood that aspects of the invention are described throughout thedescription, drawings, and claims and that the headers do not limit thedescription in any way.

The messages that are being optimized may be any type of message orcommunication and include by way of example but not limitation messagessuch as advertisements including web site banner ads, marketingcampaigns, political campaigns, surveys, sales and promotions of varioustypes, public service announcements, electronic mail or email, pop-upwindows and the like. Usually, there will be several messagealternatives.

In simplified terms, one embodiment of the invention provides anoptimization system and procedure that selects (or selects morefrequently) and utilizes one or more well performing messagealternatives and deselects (or selects less frequently) poorerperforming message alternatives from among the available messagealternatives based on the past performance of at least some of the othermessage alternatives. However, recognizing that a particular messagealternative's performance may change (improve or degrade) over time, inat least some embodiments of the invention, even poorer performingmessage alternatives may be allocated some share of the total number ofmessages to be sent. The inventive system and method are adaptive andlearn continuously. In some embodiments, newer performance informationis weighted more heavily than older performance information, and themanner in which this weighting function is applied is selectable andprogrammable as are many other aspects of the inventive procedure.

Among the many features that distinguish the inventive system and methodfrom conventional ones, the invention provides a procedure thatrecommends and allocates messages to and among a plurality of differentmessage alternatives at intervals of time. These intervals of time arereferred to here as “stages” and though they may be any arbitraryintervals of time, the stages are desirably regular intervals of time.For example stages may be 6-hour intervals, 8-hour time intervals,12-hour time intervals, one per day, one per week, or any otherinterval. Stages may have fixed length or variable length such that theend of one stage and/or the start of another stage may be triggered bythe occurrence of an event or the absence of occurrence of an event.Usually, the intervals should be long enough to allow collection ofsignificant performance data, and not so long that important short-termtrends may be missed. In developing this recommendation and allocation,one embodiment of the inventive procedure uses the available performanceor response data from all prior stages in the message campaign. Inanother embodiment, the performance or response data from prior stagesmay be discarded after a predetermined number of stages have passed orthe performance or response data may be weighted to increase thecontribution for recent data and discount the contribution for olderdata. In either case, the inventive procedure tries to maximizeperformance, which may be indicated by the total number of positiveresponses generated by the message set.

The performance of message, in general, depends on the characteristicsof the target customer. To maximize performance, the inventive procedurespreads messages to all or most of the message alternatives, in theearlier stages, to discover high performing alternatives for differentportions of the target population. The inventive procedure based on theinformation available segments the target population in severalsegments. Customers in a given segment are expected to have similarpreferences among the messages. Within a segment, messages are sent tobetter performing messages. As more information is available about theperformance of these message alternatives, a higher concentration ofmessages are sent to better performing message alternatives within agroup, where better performing describes relative performance betweenthe message alternatives sent.

The inventive procedure can also robustly handle reasonable fluctuationsin the underlying performance of a message alternative withoutdeteriorating performance significantly. This later characteristic isbeneficial because performance of a message alternative may change overtime due to seasonal fluctuations or other reasons. Empirical andheuristic evidence, including computer simulation, have demonstrated theeffectiveness of the inventive procedure in improving performance overthat achieved by simplistic allocation strategies. Some of thesesimplistic allocation strategies include, for example distributing themessages uniformly over all the different message alternatives orassigning most of the messages to the best performing messagealternative up to that stage.

While the inventive system and method may be applied to various messagetypes, the description below for purposes of illustration focuses onadvertising messages, and web site banner ads in particular. The generalprinciples, algorithms and procedures, and parameters described relativeto banner ads apply as well to messages of other types in interactivemeasurable digital environments.

A marketing or ad campaign involves a list of ad alternatives (aparticular type of message alternative) and a target customerpopulation. The goal of the marketer is to allocate the ad alternativesto the customer population to optimize business objectives such asmaximizing the number of responses received. In an embodiment of theinvention directed to advertising, the invention provides procedure andalgorithm for optimizing the performance of marketing campaigns in whichadvertisements are distributed over an interactive, measurable mediumsuch as the Internet. One particular, popular type of advertisement isthe Internet web site banner ad.

A banner ad, or more simply “banner,” is an on-line ad the advertiserwants displayed at one or more zones. An advertiser buys ad space(advertising space) on at least one, but usually on a number of websites for the banner. The ad buy on each site consists of a number ofzones, where the zones may for example be different sections orlocations within that site, or more generally locations anywhere on theentire network. We will use the term “zone” to specify a location atwhich a banner ad or other message can be displayed on a given page of agiven Internet site. During a banner ad campaign, the advertiser pays tohave banners shown at one or a collection of zones.

There are likely to be a number of banner ad alternatives that theadvertiser wishes to deploy across these zones. For a given campaign, amarketer will provide a collection of banners that need to be assignedto the available impressions. The term “impression” is commonly used inthe industry to refer to the occurrence of a banner ad on an Internetweb site. A “click-through” occurs when a visitor to a zone clicks on abanner. Clicking-through a banner ad redirects the visitor to the pageon the advertisers web site. Impressions occur when a user visits theappropriate page of a site where the banner is displayed. The term“message alternative” is used more generically for other message types,where a particular “message” is selected from available messagealternatives. In an analogous manner, an “email” is selected fromavailable “email alternatives,” a “pop-up window” is selected fromavailable “pop-up window alternatives,” a “web page” is selected fromavailable “web page alternatives,” and a “web layout” is selected fromavailable “web layout alternatives.” Using this syntax, a “banner” isselected from “banner alternatives.” The phrases “message impression,”“email impression”, and “web page impression” though being analogous to“banner impression” have not been adopted in the field, rather the terms“email”, “message”, and “web page” themselves correspond to theimpression.

Reports providing information as to the performance of such banner adsare generated or updated at discrete times. The intermediate timebetween two reports is referred to as a stage. At the end of each stage,the ad performance results are available for that stage. In particular,ad performance indicators such as the number of impressions deliveredand the number of clickthroughs are available for each banner at eachzone.

The invention provides an automated system for optimizing ad allocationparameters and executing them on the Internet or other communicationsystem or media. The invention can also be used to optimize across thevarious other parameters that can be selected and configured in addelivery systems. For example, ad delivery systems may typically allowan advertiser to display different banners based on the time of the day,the profile of the user browsing the web site (for example, theirgeographic location and other demographic information), as well as otherad or marketing targeting criteria.

A marketing manager or other person responsible for directing the adcampaign may typically impose certain constraints on where or whencertain banners may be displayed. For example, a given banner might beexcluded from appearing at a specific zone during certain stages of thead campaign. This type of constraint may reflect the fact that anadvertiser's buy for one zone might cover different stages than the buyat another zone. Or, a particular banner may just not be appropriate forsome zones. These are merely illustrative of the constraints that may beimposed and it will be clear to those workers having ordinary skill inthe art that virtually any parameter or condition associated withplacing ads may be constrained by the marketing manager or otherresponsible person. In the context of the inventive structure andmethod, the ability to constrain one or more ad campaign allocationparameters, conditions, or other attributes is desirable so that anyconstraints that might not normally be constrained by the optimizationprocedure are understood to be constrained and taken into account.

One embodiment of the inventive optimization method may find particularutility when utilized in conjunction with a system for optimizing theperformance of messages, embodiments of which are described inco-pending U.S. patent application Ser. No. 09/586,393, filed Jun. 2,2000 and entitled System, Method, and Business Operating Model forOptimizing The Performance of Messages In An Interactive MeasurableMedium, which is hereby incorporated by reference. The inventiveoptimization method and algorithm may also be utilized in conjunctionwith a system and method for improving the performance of electronicmail and electronic mail systems, embodiments of which are described inU.S. patent application Ser. No. 09/586,394, filed Jun. 2, 2000 andentitled Optimizing The Performance of Email and Other MessageCampaigns, which is hereby incorporated by reference. However, thoseworkers having ordinary skill in the art in light of the descriptionprovided here will appreciate that the invention is not limited to theseparticular exemplary applications,

The invention can learn and optimize across the various other parametersthat are available for configuring message or ad server systems. Forinstance, ad server systems permit display of different banner ads basedon the time of the day and the profile of the user browsing the web site(e.g. their geographic location and other demographic information), aswell as other targeting criteria. The inventive optimizing system andmethod learn and then set the appropriate parameters across multipledimensions so as to optimize the objective specified by the messageprovider, such as an advertiser.

Those workers having ordinary skill in the art in light of thedescription provided here will appreciate that the system as describedabove can be easily extended to be useful for optimizing other messagetypes, including, for example, but not limited to: (1) emailalternatives, (2) pop-up window alternatives, (3) web page alternatives,and (4) web layout alternatives.

In one aspect, the invention provides a system for optimizing ads orother messages in an interactive measurable medium and automating theconfiguration of an ad server system in a larger interactive medium,such as the Internet. The system includes an optimizing engine typicallywithin a server of conventional type having a processor or CPU, a memorycoupled to the processor, and a local data storage, along withinput/output and other network communication devices for communicatingdata and commands to other computers or information appliances. Theoptimization engine that implements the inventive optimization procedurein software takes as input an ad performance report or other performancedata and generates configuration parameters for the optimal allocationof ad alternatives. In one embodiment, it loads the performance reportsfrom a database and stores the parameter values into the database. Thedatabase stores user-configured information, optimization enginegenerated configuration parameters and performance reports from the adserver system. An advertising server interaction service is operative toload performance reports from the ad server system and store them in thedatabase as well as taking user or optimization engine generatedsettings and setting them into the ad server system. In the systemimplementation, the user interface allows the user to enter campaigndata and specifications about the optimization. Additional features ofsuch a system are described in U.S. patent application Ser. No.09/586,393, filed Jun. 2, 2000 and entitled System, Method, and BusinessOperating Model for Optimizing The Performance of Messages In AnInteractive Measurable Medium.

As the inventive method is advantageously implemented as a computerprogram and computer program product for use on a general (or special)purpose computer, such as for example a computer operating in anInternet or other network server environment, attention is now directedto an exemplary computer system which may be used in conjunction withthe inventive method, procedure, computer program, and computer programproduct.

With respect to FIG. 1, computer 102 includes a processor or CPU 104coupled to a random access memory 106 storing data 108 and procedures110. Random access memory (RAM) is desirable to facilitate computationalefficiency and throughput. Processor 104 is also conveniently coupled toone or more mass storage device 112 such as one or more hard disk drivesof which many types are known. The mass storage devices may typicallystore information in one or more databases. In the context of thepresent invention, such databases or data structures may storeperformance data, allocation data, and other data and/or procedures oralgorithms that are not currently being processed by the processor 104or memory 106. Input/output devices 114 may also be conveniently coupledto the processor or other computer system 102 components for inputtingdata to the computer, retrieving results from the computer, monitoringactivity on the computer or on other network devices coupled to thecomputer, or other operations as are known in the art. A networkinterface 116, such as a network interface card (NIC), modem, or thelike is also conveniently provided.

Procedures 110 may for example, include an operating system 120, anoptimization procedure 122, a segmentation procedure 124, a messageallocation procedure 126, a pair-wise or other message alternativecomparison procedure 128, as well as other procedures and algorithms130.

Data 108 may for example include one or more state vector 142, resultsvector 144, allocations vector 146, constraints list or constraintsitems 148, stage discount factors or parameters 150, threshold values152, proportional impressions or trials factors 154, or other data orparameters 156.

Those workers having ordinary skill in the art in light of thedescription provided here will appreciate that the computer system 102described here is merely exemplary and that various modifications may bemade, or that other computer system architectures may be used inconjunction with the inventive system, method, and computer program.Various types of personal computers (PCs), mainframe computers, workstations, and other computing and information processing systems areknown in the art and may be used in conjunction with the inventivesystem architecture, methods, procedures, algorithms, and computerprograms and computer program products.

Embodiment of Optimization Procedure and Algorithm

Having described certain high level features of the inventiveoptimization procedure as well as providing an exemplary environment inwhich the inventive methods, procedures, and algorithms have particularapplicability, attention is now directed to details of a particularembodiment of the inventive optimization algorithm and procedure.

For an online banner ad campaign, the target population of an onlinebanner ad advertising campaign includes and typically consists of“visitors”. These visitors can be described in terms of a variety ofvisitor profile attributes. Examples of these attributes include thecountry that each visitor lives in, age of visitor, hour of day eventoccurred, day of week events occurred, operating system visitor isusing, and other attributes either alone or more typically in somecombination. Each attribute has one or more “values”. For example, thehour-of-day attribute may take on any one of twenty-four valuescorresponding to each hour of the day. The country attribute has valuesequal to the countries where customers live, or in a practicalimplementation, the number of countries identified to users.

The values of an attribute can be decomposed into multiple portions.Each portion corresponds to one or more values or range of values of anattribute. For a single attribute each portion corresponds to a “cell”.If we are studying two attributes then the combinations of values arecalled cells. For example Japan/1-2 am cell consists of all impressionsthat were shown to visitors from Japan (country attribute=Japan) betweenthe hours of 1 am and 2 am (Hour attribute=1 am to 2 am). Each visitorfrom the target population falls into exactly one cell. It will beapparent to one skilled in the art in light of the description providedthat zone can represent one of the visitor profile attributes and can beused as a targeting attribute.

In some cases, the data may be available for more than one template.Each template consists of multiple cells. The cells between differenttemplates may not correspond to each other. All the cells of a templatecover the entire set of visitors. For example, the attributes oftemplate 1 may be “hour of day” and “country”, and attributes oftemplate 2 may be “hour of day” and “gender.” The cells of one template(e.g., visitors from California between the hours of 1 pm and 2 pm),will generally be different then cells of the other template (e.g., allmale visitors between the hours of 1 pm and 2 pm).

The customer population may be divided into one or more segments using atemplate. A segment of the visitor population for a particular templateincludes and typically consists of one or more cells.

The algorithm and procedure described below may be utilized for one or aplurality of attributes and/or templates but is described for a singleattribute and a single template for ease of presentation. Extension tomultiple attributes and multiple templates is described elsewhere inthis description.

This embodiment of the algorithm and procedure is described in theInternet banner ad context. In this application context, three principaltypes of data are used by the inventive procedure for every cell: (i)State Vector, (ii) Results Vector, and (iii) Allocations Vector thatincludes a Constraints List. (In one embodiment, the Constraints List isseparate from the Allocation Vector, but used to generate theAllocations Vector.) These data types are described in turn. The termvector is used to refer to one form in which the data is stored and/ormanipulated.

Cell States and State Vector.

For each combination of a cell and a banner, the inventive procedureretains a “state vector” that records all of the information that hasbeen collected on the given banner at the given cell (cell/bannercombination). This state vector is updated at the end of each stage ofthe campaign to reflect the results of that stage. In particular, thestate vector contains the history of impressions and clickthroughs forthe given cell and banner.

Results Vector.

The results vector is a vector of the results of the most recent stageof the campaign. It contains the unprocessed impression and clickthroughdata for each cell and banner combination. If a banner was not displayedat some cell during the most recent stage, the results vector indicatesthis fact.

Allocations Vector.

The allocations vector contains the recommended allocation of banners toimpressions for the next stage of the campaign. Intuitively, theseallocations are expressed in percentage terms. However, in practice therecommended allocations may be re-expressed in a form acceptable to thead server. Hence, some translation or transformation may be provided.The Allocations Vector may also include a list of constraints, thoughthe constraints list may be separately provided.

Constraints List.

A list of any constraints on the allocation of banners to impressions isstored in the constraints list. At least two types of constraints canoccur. First, the user can specify the minimum number of banners thatmust be retained and displayed at each stage of the ad campaign. Second,the inventive procedure implemented as a computer program on ageneral-purpose computer retains a table of “banner exclusions.” Thetable of exclusions, includes for example, a table defined as a datastructure in memory that indicates when a given banner should not beshown on a given cell. This table may include one or more entries or maybe empty.

The inventive procedure is advantageously run at the end of each stageof an ad campaign. It allocates the available banner impressions orbanner ad alternatives at each cell for the next stage among theavailable banners. That is, it generates a strategy or recommendationfor displaying banners during the next stage of the campaign. Indeveloping this recommendation, the algorithm uses the results from allprior stages. (Though in at least one embodiment, a selected range ofdata from older stages may optionally be discarded, and in a differentembodiment, not all data from all stages has the same weight or value inthe recommendation.) One objective is to allocate the banners at allstages so that the total number of positive results, such as userclickthroughs on a web site, recorded at all cells by all banners duringthe campaign is maximized. Other operations may optionally be performed,for example, during the ad campaign, the client advertiser or marketingmanager may wish to delete or add a zone or banner.

An embodiment of the optimization procedure 202 is now describedrelative to the flow-chart diagram of FIG. 2. First, the prior stagemessage state is read (Step 204). Optionally, the previous messageallocation, if available, is read. (Step 205). Next, message performanceresults are read (Step 206). These performance data or results aretypically received from another source, such as an ad service and store.The current (or new) message state is then computed (Step 207) using,for example, the state vector update procedure described in greaterdetail elsewhere herein. The segmentation procedure is then applied tosegment the cells into multiple segments (Step 208). Using thesesegments message allocations, possibly with some format transformationto adapt them to the particular format needs of a receiver, aregenerated (Step 209) and sent to the receiver such as a message service.As a primary application of the inventive method is for Internetadvertising, the message service will frequently be an ad service. Asthe message campaign (ad campaign) is generally a multi-stage campaign,the procedure is repeated until all stages in the campaign have beencompleted. This requires that the prior message state used in Step 204be replaced with the current message stage (Step 210) generated in step210 before the next iteration (Step 211). New message performanceresults received in step 206 are also used for the next iteration. Theresult of the current message allocation is optionally stored for thenext iteration.

While it is generally intended that performance data or results arereceived for each prior stage before allocations are generated for thecurrent or next stage in the campaign, and the inventive procedurebenefits from such timely receipt, the invention does not require suchtimely receipt. In the event that expected prior stage results are notfor some reason received as expected, the inventive procedures aresufficiently robust that the new allocations are merely based on theprevious performance data or results. Therefore, when new performanceresults are not available, the old performance results are read orotherwise used in the computations. In some instances this may result inthe same or substantially the same allocations as the previous stage,however, where discounting is applied, the allocations may not be thesame. The extent of the difference may typically depend upon thediscounting function and the historical prior performance results towhich the discounting is applied.

The banner ad performance may improve or deteriorate over time so thatgenerally the performance of an ad is non-stationary in a statisticalsense. There are a number of potential reasons for a banner to havenon-stationary behavior in the underlying performance. For example, abanner that promises overnight delivery may be quite effective shortlybefore Christmas, but much less effective on the day after Christmas.Even absent a particular identifiable event, the performance of ads maychange over time. For example, Internet visitors may see a given bannertoo many times and beyond some point the banner loses all attraction. Asthe fraction of visitors who have seen the ad too many times increasesthe performance of the banner deteriorates.

Embodiment of State Vector Update Procedure

One embodiment of the inventive procedure optionally but advantageouslyuses a “discounting” of the performance data in computing or updatingthe State Vector. Such discounting may be in the form of a binary stepfunction where data older than a certain stage is simply ignored, in theform of a linear or non-linear weighting function, or according to anyother weighting or discounting scheme. In one embodiment, the discountis in the form of a geometrical discounting, that is, at the end of eachstage all data (such as for example, the number of impressions andnumber of clickthroughs) is multiplied by a one-stage discount factorbeta, β, where beta is a number less than one (β<1). Thus, data that isn stages old at the time when the procedure is executed will end upbeing multiplied by beta raised to the n^(th) power (β^(n)). In thismanner newer performance data is weighted more highly than olderperformance data. While not true in all circumstances, it is generallytrue that newer performance data provides better guidance as to whatallocation scheme will be successful in the next stage than will olderperformance data. In any particular situation where this generalizationdoes not hold true, different discounting schemes, including forexample, a discounting scheme which weights some segment of performancedata more heavily than newer performance data, may be applied. If nodiscounting is desired, beta may be set to 1 (β=1). (Empirical andsimulation studies have shown that a value of the one-stage discountfactor (beta) of about 0.9 works well for a range of synthetic and realdata sets, though values between about 0 and about 1 may be used, moretypically between about 0.5 and 0.99, more usually between about 0.8 andabout 1.0, and even more usually between about 0.85 and 0.95 may beused.)

To describe the discounting procedures, let s_(i)(t) denote the totalnumber of discounted cumulative clicks and n_(i)(t) denote thediscounted cumulative number of impressions for banner i at thebeginning of stage t for a given banner/cell combination i. Letimp_(i)(t) denote the total number of impressions and click_(i)(t)represent the total number of clicks and impressions for a particularbanner/cell combination i in stage t. Then the discounted cumulativeclicks s_(i)(t) and the discounted cumulative impressions n_(i)(t) aregiven by the following expressions:

s _(i)(t)=βs _(i)(t−1)+click_(i)(t−1),for t>=2;and

n _(i)(t)=βn _(i)(t−1)+imp _(i)(t−1),for t>=2;

where s_(i)(1)=0 and n_(i)(1)=0. Thus, s_(i)(t) and n_(i)(t) representtwo components of the state vector. Discounting reduces the impact ofold data and allows the inventive algorithm to be more responsive to newdata that may reflect changes in the clickthroughs rates or otherperformance indicators.

The above expressions are specialized for an embodiment in which theperformance metrics are based on numbers of “impressions” and“clickthroughs,” where for a particular impression the viewer has thebinary choice of either clicking-though or not clicking through for eachimpression.

In the set of equations above, the discounting is provided by the factorβ. The above expressions can be easily generalized to an arbitrary orgeneralized discounting function G{ . . . } which uses the clickthroughsand impressions from the previous stages to derive the discountedcumulative clicks s_(i)(t) and the discounted cumulative impressionsn_(i)(t) using the following expressions:

s _(i)(t)=G{click_(i)(1), . . . , click_(i)(t−2), click_(i)(t−1)}, fort>=2; and

n _(i)(t)=G{imp _(i)(1), . . . , imp _(i)(t−2), imp _(i)(t−1)}, fort>=2;

where s_(i)(1)=0 and n_(i)(1)=0. In this generalized discountingfunction G{ . . . }, it is noted that none, some, or all, of theclick_(i)(t) and/or imp_(i)(t) may actually weighted or discounted,though in the preferred embodiment each is discounted.

In particular, functions which give more weight to more recent values ofs_(i) and n_(i) are of special interest. When a different binaryresponse performance indicator than clickthroughs such as positiveresponses or “successes” is used, and a more general term applied toimpressions such as “trials” is used, along with a generalizeddiscounting function H{ . . . }, the general expressions for the totalnumber of discounted successes s_(i)(t) and the cumulative number oftrials n_(i)(t) are given by the following expressions:

s _(i)(t)=H{success_(i)(1), . . . , success_(i)(t−2), success_(i)(t−1)},for t>=2; and

n _(i)(t)=H{trial_(i)(1), . . . , trial_(i)(t−1), trial_(i)(t−1)}, fort>=2;

where s_(i)(1)=0 and n_(i)(1)=0. Here, s_(i)(t) and n_(i)(t) representthe state vector for banner/cell combination i. As noted above for G{ .. . }, none, some, or all, of the success_(i)(t) and/or trial_(i)(t) mayactually be weighted or discounted by the discounting function H{ . . .}, though in the preferred embodiment each is discounted.

In some cases, before the inventive system and/or method are used foroptimization, a campaign may already be executing. In this case,information may be available regarding the performance of the banners.This performance information can be used to initialize s_(i)(1) andn_(i)(1) as follows. A cumulative or discounting procedure as describedin the previous section can be use to estimate s_(i)(1) and n_(i)(1) inthe same fashion as s_(i)(t) and n_(i)(t) are calculated, for example,by either using the cumulative sum or some form of discounting. Thoseworkers having ordinary skill in the art in light of the descriptionprovided here will appreciate that there are several similar variationsof the above basic strategy.

Even when the campaign is started fresh, a campaign manager may haveused the same banner in an earlier campaign or may have a priorjudgement about the performance of the banner. In this case the value ofs_(i)(1) and n_(i)(1) for banner/cell combination i can be set asfollows. The manager can provide an estimate of the average performanceof mean; for the banner/cell combination i over the previous campaigns.He/she may decide that the information from the previous campaign isworth N_(i) impressions. In this case s_(i)(1) can be set to(mean_(i)×N_(i)) and n_(i)(1) can be set to N_(i).

The setting of s_(i)(1) and n_(i)(1) as described above can be used toincorporate managers prior experience or judgement of the banners.Larger values of N_(i) imply that the manager is more confident aboutextrapolating the future performance of the banner based on his priorexperience or judgement.

Those workers having ordinary skill in the art in light of thedescription provided here will appreciate that there are several similaror analogous variations of the above basic strategy.

Embodiment of Segmentation Procedure

Having now described several embodiments of the state vector updateprocedure, attention is now directed to embodiments of the segmentationstrategy and its associated procedure and algorithm. A segmentationstrategy consists of decomposing all the cells into a set of segmentssuch that each cell for a given template belongs to one of the segments.

During a campaign, attribute-specific data may be available for eachbanner. For example, not only are the total clicks and impressionsavailable for each banner, but this data is also available at theattribute level for specific attributes, such as country attribute, hourof day attribute, operating system attribute, and/or other attributes.Optimizing banner allocation at the cell level should offer betterperformance than pooling all cells together for a given attribute, givensufficient impressions per stage. Thus, decisions can be made to showdifferent banners to different countries, for example, according to thecountry attribute.

A problem with optimizing at the cell level is that we have fewerimpressions than if one had optimized disregarding the cells of anattribute. This may lead to making poor allocations. One expects thatgrouping cells into segments in an intelligent way, and makingallocation decisions for the segment as a whole, will lead to higheroverall click-through rates. Every banner should have similarclick-through rates across every cell in the segment. Thus, allocatingimpressions to the segment as a whole should be similar to separate cellallocation, but the former has more impressions, and hopefully will leadto better results.

The embodiment has general applicability, and thus the sites on which abanner is shown can be considered an attribute. In this case, each sitefrom which a client has bought impressions can be considered a cell.Thus, one can explore whether it is better to pool information fromdifferent sites to improve overall performance. Assume that theunderlying click-through rate of each banner for each cell is availablefor a given campaign. Also assume that the fraction of impressionsassigned to each cell is known. This information can be used to quantifythe benefit of optimizing each cell separately as opposed to groupingall the cells, assuming that the click-through rates are stationary.This quantity, called the gain ratio, can be obtained by the ratio ofStat2 divided by Stat1, where:

-   -   Stat1—The expected click-through rate given that all cells are        grouped together, and the best banner was turned on the whole        time, while others were turned off.    -   Stat2—The expected click-through rate given that all cells are        treated separately, and the best banner for each cell was turned        on the whole time, while others were turned off.

For most campaigns, if the gain ratio (Stat2/Stat1) is close to one,grouping all cells together into one segment as opposed to treating eachcell separately will result in better performance. This is becauseoptimizing at the cell level offers little performance gain, but fewerimpressions for each allocation decision. (Note that this is only oneexample of a gain ratio and that other definitions of gain ratios orindicators may alternatively be used.)

For most cases, the gain ratio is close to 1. In these cases anythingother than pooling all the cells together will typically deteriorateperformance. However, in some cases the potential for improvement islarge. The gain ratio is not necessarily known a priori, but if it were,or if it could be estimated well, this information may be used (as insome embodiments) to improve performance further.

One exemplary segmentation strategy comprises decomposing the visitorprofile space into a set of segments, whose subsets unite to make up theentire visitor profile space. A Static Grouping Algorithm will alwaysgroup all cells together into one segment, while a Static SplittingAlgorithm will always split all cells into different segments so thateach segment contains exactly one cell. If one is not careful aboutselecting the segmentation strategy, cells with different underlyingclick-through rates could be grouped together and may cause theallocation algorithm to make worse or poorer decisions than eithergrouping all cells together or alternatively treating all cellsseparately.

Let n be the number of cells. The number of possible segmentations for ncells is commonly known as a Bell Number, expressions for which areshown below:

${B_{n} = \lceil {^{- 1}{\sum\limits_{m = 1}^{2\; n}\; \frac{m^{n}}{m!}}} \rceil},{B_{n} = {\frac{1}{}{\sum\limits_{k = 0}^{\infty}\; {\frac{k^{n}}{k!}.}}}}$

The Bell Number, as a function of n, is much greater than 2^(n−1). Thefirst ten Bell numbers are 1, 2, 5, 15, 52, 203, 877, 4140, 21147, and115975. For reasonable values of n (occurring at around n>25), thenumber of possible segmentations grows rapidly. So one of the goals of asegmentation strategy is to reduce the total number of segmentations tobe evaluated to derive a near optimal segmentation. This is required, orat least highly desired, because the number of possible segmentations isvery large.

One primary goal of evolutionary targeting is to create a segmentationstrategy at each stage, such that the expected performance of thecampaign, given the present and past data, is maximized. In oneembodiment, a segmentation method typically includes one or moreiterations involving choosing a subset of segmentations and comparingthese segmentations to find a current best segmentation. The formerinvolves a method or procedure for choosing a subset of segmentations.This subset is different from previously chosen segmentations if morethan one iteration is performed. The latter involves a method orprocedure for comparing these segmentations to find the best currentsegmentation, where if the number of segmentations compared is equal totwo this can be achieved by developing a method for comparing twosegmentations. The above method is iterative in nature.

In another embodiment a recursive method can be used. This method startswith all the cells as a single segment. At every step of the recursion,the algorithm decides whether to split (or not split) a segment into twoor more disjoint smaller segments. Splitting is deemed better if theweighted performance of the all the smaller segments is better than theentire segment.

Several embodiments for particular tests, comparisons, evaluations anddecisions that address these issues are described immediately below.

Comparing Segmentations

In the following are described two different ways of comparingsegmentations, performance-based comparisons and model-basedcomparisons.

1. Performance-Based Comparison

These performance-based comparison methods directly estimate theexpected performance of the segmentations to choose the bettersegmentation. This is generally a complex and non-trivial task as theretypically exists considerable uncertainty about the underlying bannerperformance in or during the earlier stages. In one embodiment, thefollowing measure may be used, given by θ, where θ is the largest valuefor which:

P(click-through rate for at least one banner>θ)=0.95

The value of θ is a surrogate for the expected performance if theallocation algorithm was applied to the segment. In one embodiment, theimpression and click information from all the cells in the segment arepooled together for a given banner to derive its click-through rate.

The expected performance of a given segmentation is derived by theweighted average of θ for all the segments. This value can then be usedto choose the best segmentation.

2. Model-Based Comparisons

The goal of a model-based comparison is to determine a specificsegmentation that models the underlying click-through rates well withthe least number of segments. The allocation algorithm is thenindependently applied for each of the segments. The goal here is to findsegments including or consisting of cells with similar click-throughrates that will lead to an overall improvement in performance.

Two exemplary types of model-based comparison techniques are nowdescribed. The first technique involves a method that estimates adirected distance between a given distribution and the true underlyingdistribution of the clicks and impressions (Bernoulli trials). Thesecond technique involves a method which compares models in a pair-wisemanner and uses a hypothesis test. The second model-based method maysometimes be limited to cases when only two segmentations are two becompared to derive the better one between the two.

Akaike Information Criterion:

The directed distance between two probability distribution functions canbe defined as the Kullback-Leibler (KL) distance. Let f be the truedistribution and g be the comparison distribution. Then the KL distanceis defined by the expression:

KL(f,g)=E _(f)(log(f/g))

where the expectation is taken with respect to the true distribution. Itturns out, that an approximately unbiased estimator for the expectedvalue of a version of the KL distance is the Akaike InformationCriterion (AIC). (The Akaike Information Criterion is described, forexample, in Kenneth P. Burnham and David R. Anderson, Model Selectionand Inference, New York: Springer, 1998, incorporated herein byreference). The formula is as follows:

AIC(g)=−2 log(L(θ|x))+2K

where θ is the maximum likelihood estimator of the parameter vector ofthe distribution g, x is an observation of the underlying randomvariable (the click and impression data in our situation), and L is thelikelihood function of θ given the data, with K being the number ofparameters in the distribution g (the size of the vector θ).

Thus, one can calculate the AIC for several different segmentations(models), and choose the smallest one as a segmentation strategy. Thusone would choose model 0 over model 1, if and only if:

−2 log(L ₁)+2K ₁≧−2 log(L ₀)+2K ₀

The likelihood function for the distribution associated with a givensegmentation is easy to calculate (it is the joint distribution ofseveral Bernoulli trials, evaluated at the given data point), so the AICmethod of comparison is computationally feasible.

Given a random sample drawn from a Bernoulli distribution, thelikelihood function takes the form of the expression:

L(p|x)=p ^(C)(1−p)^(N−C)

where C is the number of clicks (successes), N is the number ofimpressions (trials), and p is the parameter (estimated click-throughrate) of the likelihood function that is being minimized. As expected,the maximum likelihood estimate of p is simply the ratio of the numberof successes divided by the number of trials or C/N. For a given segment(group of cells), the likelihood function can be calculated andevaluated at the estimate C/N, by summing up all clicks, summing up allimpressions, and evaluating the function above, with the substitutionp→C/N. The likelihood of the model is just the product of the likelihoodfunctions of each segment. Also, the number of parameters for that modelis the product of the number of segments and the number of banners.

Wilks' Hypothesis Test:

If one defines Λ as −2 log(L₀/L₁), then Λ has another interestinginterpretation. Given M₀ is the null model with n parameters, and M₁ isthe alternative model with m>n parameters, A takes on an approximate χ²_(m−n) distribution, given the null hypothesis (that M₀ is true). Thus,using the AIC test is equivalent to the hypothesis test with p-valueProb{Λ>2(m−n)}. (A p-value is the probability that the alternativehypothesis is chosen, given the null hypothesis is true.) If the test isviewed from such a perspective, it is called a Likelihood Ratio Test(LRT). Usually, a p-value is fixed and threshold adjusted accordingly,depending on m−n. This is a matter of using the inverse cumulativedistribution of χ² _(m−n) to find the correct threshold for each m−n.Thus, one is left with two related methods of pair-wise segmentationcomparisons.

Reducing the Number of Segmentations

In one embodiment, a so called greedy approach is used to reduce thissearch. This approach works recursively. At every step of the recursion,the algorithm decides whether to split a parent set into two childrenusing the procedure, outlined immediately below and also illustrateddiagrammatically in FIG. 3.

At step 311, begin with all cells grouped together (Set A). At step 314,find the one cell that, when split from the rest, leads to the bestoverall split value (either in terms of LRT or AIC as described above),and define set B to contain this one cell. Next, find the next best cellto remove from Set A and add to Set B (in terms of best split valueamongst the choices). This is continued until there are only two cellsleft in Set A. At step 315, choose the split that gives the highestsplit value, of all combinations tried above. If a split is favorable(for example, B is non-empty) as compared to not splitting, the split ismade, and the algorithm is recursively applied to each of the twochildren.

The above greedy algorithm is one of the possible approaches for findinga well-performing or the ‘best’ segmentation at each stage. One canextend this approach to do a random sampling of the entire segmentationspace. Gibbs sampling methods may be used to stochastically select abetter performing or something closer to the ‘best’ segmentation. Gibbssampling methods are known in the art and not described in furtherdetail here.

In another embodiment, an iterative segmentation method or procedure isapplied. According to this procedure, at each iteration, a number ofpossible segmentations are determined, using Gibbs sampling or othermethods or procedures. These segmentations are then compared using oneof the methods described above. If two segmentations have beenidentified, the likelihood ratio test may be used; if two or moresegmentations have been identified, performance-based measures orAkaike's Information Criterion may also be used. In particular,iterative implementations of the recursive method described above may beusefully employed to determine visitor segments.

The Case of Multiple Attributes

The algorithm and procedure described above can be readily extended tothe case where one has data broken down by more than one attribute,including by more than one visitor profile attribute. For example, ifone has click and impression data for “hour of day” and “state” (forexample, the number of impressions and clicks for people in Californiabetween the hours of 1 pm and 2 pm), the algorithm can determinesegments defined on both the “hour of day” and “state” attributes.

The multi-attribute algorithm works in a very similar way to thesingle-attribute algorithm that has been described in detail hereinelsewhere. In particular, in one embodiment, the multi-attributealgorithm applies the greedy algorithm to each attribute independentlyand determines candidate splits for each attribute. It then chooses thesplit that is the best across all attributes (or alternatively acrosssome selected set of attributes), implements that split, and thencontinues by recursively trying to split each of the children, againgenerating potential splits across all (or selected) dimensions andchoosing the best one. The following description for a multi-attributeimplementation provides a more detailed description of the stepsinvolved, aspects of which are also illustrated in FIG. 3:

At Step 312, the supercells along a given attribute include or consistof all the cells with the same value of the attribute. In oneembodiment, the performance information of a supercell is derived bypooling all the cells corresponding to a supercell. The followingsubsteps (Steps 313-315) are applied along each attribute and theattribute and split which results in the best segmentation areidentified. At Step, 313, begin with all supercells grouped together(Set A). At Step 314, find the one supercell that, when split from therest, leads to the best overall segmentation, and define Set B tocontain this one supercell; then, find the next best supercell to removefrom Set A and add to Set B (in terms of best split value amongst thechoices). Continue, until all there are only two supercells left in SetA. At Step 315, choose the split that gives the highest split value, ofall combinations tried above. At Step 316, if a split leads to afavorable segmentation as compared to not making a segmentation split,then the split is made along the corresponding attribute, and thealgorithm is recursively applied (Step 317) to each of the two children.

Those workers having ordinary skill in the art will appreciate that theabove described techniques and procedures represent exemplary ways forsplitting cells, and that other variations on these techniques ordifferent alternative techniques may be employed.

The Case of Multiple Templates

The algorithm and procedure described above can be readily extended tothe case where one has data that is broken down by more than one visitorprofile template. The algorithm assumes that data is collected for allthe cells of each template. For example, one may have click andimpression data for a plurality of attributes such as “hour of day” and“state” (for example, the number of impressions and clicks for people inCalifornia between the hours of 1 pm and 2 pm), and separately for “hourof day” and “gender” (for example, the number of impressions and clicksfor all males between the hours of 1 pm and 2 pm). In such cases, onemay readily extend the model-fitting techniques to automatically let thealgorithm choose which template is best to segment. At the end of a fewstages the gain ratio (or other measure) along each (or selected ones)of the templates is estimated by modeling the performance of the bestsegmentation of the template. The template with the best-estimated gainratio is then used for segmentation for the rest of the campaign. Thoseworkers with ordinary skill in the art will appreciate that the templateused for segmentation can also change from stage to stage.

Using Prior Segmentation Information

If it is known that certain cells belong together, based for example ondata mining of historical data, any other problem or situation specificinformation or criteria, or other information no matter what the source,then it may generally be desirable for the algorithm to compare theevolutionary targeting algorithm segmentation with a specifiedsegmentation, and choose which has the most potential. Bayesian methodsfor example, can be used to give preference to the prior segmentation,and are used in one embodiment.

Using Skeleton Segments

A marketer (or other messaging entity) may desire to have certainskeleton segments. This requires that the segmentation strategy ensurethat each segment created is a proper subset of one of the skeletonsegments provided by the marketer. Embodiments of the inventivealgorithm can be easily changed to work within such a constraint,segmenting within each skeleton segment.

Allocation within a Cell

The clicks and impression information for each cell within a segment mayadvantageously be added together to derive the “pooled clicks” and“pooled impressions” information for each cell in the segment. Thisinformation is then used for making allocations for each cell.

At the initial stage (when no information has been collected on thebanner ads or other message type), embodiments of the inventive methodand procedure may allocate the impressions in any one of severalpossible manners. Such initial allocation may be based on eitherobjective or subjective criteria, or on a combination of both. In oneembodiment, an even or uniform initial allocation of impressions is madefrom among the available banners (or other message type). That is, ifthere are a number b banners, then each banner will receive aproportional fraction 1/b of the total number of impressions for eachcell.

At each of the remaining stages, the inventive procedure may then usethe available performance data (for example, the pooled impressions andpooled click throughs from the earlier stages), allocation information,and/or other information that may be available on the banners to dividethe available banners into two classes: (i) a first group referred to asthe contenders, and (ii) a second group referred to as thenon-contenders. The “contenders” are the banners that are still incontention according to some criteria to be declared the best banner.The “non-contenders” are the banners that appear out of the running forbest banner based on the available information. There may also be a(iii) third group of “unavailable banners” if the constraint listindicates that some banners cannot be used on the given zone during aparticular stage. Banners that cannot be used for the next stage duringwhich the new allocations are to be made would be placed in the thirdgroup, as they cannot be displayed during the next stage independent ofhow well they might perform. Hence, those ads that are available for thenext stage are divided into either the contender or the non-contendergroup. Any one of these groups may have none, one, or a plurality ofads. These concepts and procedures of course apply in analogous mannerto message types other than ads or banner ads.

Given this division of the banners into contenders and non-contenders,one embodiment of the inventive procedure allocates the impressionsamong the banners as follows. Let γ<1 be a constant that represents theproportion of impressions that will be allocated to the non-contendersat each stage. This γ is a constant selected at the beginning of thecampaign. The value selected is not critical, as the inventive procedurewill reallocate between contenders and non-contenders at subsequentstages. The value may also be selected so that impressions are notallocated to non-contenders. Let b represent the total number ofbanners, b₁ denote the number of contenders and b₂=b−b₁ the number ofnon-contenders. Then each contender receives the fraction (1−γ)/b₁ ofthe available impressions, while each non-contender receives thefraction γ/b₂ of the available impressions. Using this approach with asmall value of γ, most of the impressions are spread evenly among thecontenders and a few impressions are used to continue monitoring thenon-contenders. As the campaign progresses the number of contenders willgenerally decrease over time since the inventive system and method willhave more information upon which to judge which banners are moresuccessful and which banners are less successful.

In an allocation task where there are five possible banners {X₁, X₂, X₃,X₄, X₅}, three of which are contenders {X₁, X₂, X₃} and two of which arenon-contenders {X₄, X₅}, the Allocation Vector may therefore take theform of, for example (0.3, 0.3, 0.3, 0.05, 0.05) where the contenderseach have a 0.3 (or 30%) and the non-contenders each have a 0.05 (or 5%)proportion of the total.

Exemplary Pair-Wise Test Procedure to Identify Contenders andNon-Contenders

In one embodiment, the division of banner ads into contenders andnon-contenders is based on the following pair-wise test procedure forcomparing two banners. When more than two banners are involved in acampaign a pair-wise test is advantageously used for each possible pairor combination of banners.

For each pair-wise test, suppose that two banners are given and letp_(i) (for i=1, 2) denote the unknown clickthrough probability of thei^(th) banner. Let n_(i) denote the total number of pooled impressionsfor the i^(th) banner, s_(i) the total number of pooled successes andf_(i) the total number of pooled failures. (So, s_(i)+f_(i)=n_(i)).Finally, define Z and V as follows:

Z=(n ₂ s ₁ −n ₁ s ₂)/(n ₁ +n ₂),and

V=(n ₁ n ₂(s ₁ +s ₂)(f ₁ +f ₂)/(n ₁ +n ₂)³.

It can be shown that Z is approximately normally distributed withvariance V and mean θV, where:

θ=log((p ₁(1−p ₂))/(p ₂(1−p ₁))).

The pairwise test attempts to determine or test whether the two unknownclickthrough rates for the two banners under consideration are equal. Ifthey are equal, then θ=0 and Z is normally distributed with mean 0 andvariance V. The distance between the observed value of Z and 0 (the meanof its distribution) measured in standard deviations is given by Zdivided by the square root of V. In one embodiment, if this statistic(Z/√V) is greater (in absolute value) than some cutoff threshold value

, then the procedure concludes that the click-through (or otherperformance indicia) rates are significantly different from each other.In one embodiment, the user (such as for example the marketing manager)specifies the cutoff threshold value

prior to the campaign; however, the value may be modified during thecampaign. In one embodiment, the value of the cutoff threshold value

is selected to be between about ½ and about 1, based on empiricalsimulation results, but other values may be used. In one embodiment acutoff threshold value

of 0.5 is used. Other embodiments use different values. Particularvalues used in specific situation may be determined from experience orempirically with these values as a guide.

The pairwise test is applied to all pairs of banners. If a particularbanner loses one of these comparisons (that is, if a banner isdetermined to have a significantly lower click-through rate than anotherbanner), then that banner is designated as a non-contender. Thispairwise procedure guarantees that at least one contender will remain.

Exemplary Procedure for More than Two Sets of Alternatives

The algorithm described above divides the alternatives into two sets:contenders and non-contenders. The basic approach can be extended todecompose the alternatives into more than two sets. Consider thepair-wise test between alternative i and alternative j. Let Compare(i,j)represent the Z(i,j)/sqrt(V(i,j)) statistic where:

Z(i,j)=(n _(j) s _(i) −n _(i) s _(j))/(n _(i) +n _(j)),and

V(i,j)=(n _(i) n _(j)(s _(i) +s _(j))(f _(i) +f _(j))/(n _(i) +n _(j))³.

The value of Compare(i,j) is positive if the performance of alternativei is better than alternative j and is negative if the performance ofbanner j is better than banner alternative i. Define Perf(k)=max_(1≦i≦n)Compare(i,k). This embodiment of the algorithm or procedure deems analternative k to be a non-contender if performance of alternative k,that is if Perf(k), is above the cutoff threshold, otherwise k is acontender.

The above basic approach can be extended to decompose the alternativesinto more than two sets. Under these circumstances, the alternatives aredivided into several sets based on the corresponding Perf values. Theimpressions are allocated to different alternatives such that thealternatives for sets corresponding to higher values of Perf get smallernumbers of impressions. However, the number of impressions allocated toall alternatives within a set is equal. In the extreme case, the numberof sets is equal to the number of alternatives. In this case, eachalternative gets a different fraction of the total number of impressions(or trials). This approach is formalized in the next section.

Exemplary Procedure for Dividing Alternatives into Multiple Sets

The value of Compare(i,j) is positive if the performance of alternativei is better than alternative j, and the value of Compare(i,j) isnegative if the performance of banner j is better than banneralternative i. Define a performance function (Perf(k)) to be the maximumof Compare(i,k) over the range of i from i=1, . . . , n; that is,Perf(k)=max_(1≦i≦n) Compare(i,k). The algorithm deems an alternative kto be a non-contender if Perf(k) is above the cutoff threshold α,otherwise k is deemed to be a contender.

One embodiment uses the value of Perf(k) to segment the banners into twoor more sets (r>2 sets). In this context, larger values of theperformance function Perf(k) as defined here will generally imply poorrelative performance of banner alternative k. Let there be user definedthresholds α₁, α₂, . . . α_((r−1)) such that a first threshold α₀=−∞,and the remaining thresholds are each greater than α₀, that is−∞=α₀<α₁<α₂< . . . <α_((r−1))<α_(r)=∞. The algorithm assigns a banner kto set j, where 1≦j≦r, if α_((j−1))≦Perf(k)<α_(j).

The impressions are allocated to different alternatives such that thealternatives for sets corresponding to higher values of Perf get smallerfraction of impressions. However, the number of impressions allocated toall alternatives within a set is equal. In the extreme case, the numberof sets is equal to the number of alternatives. In this case, eachalternative gets a different fraction of the total number of impressions(or more generally, total number of trials).

Those workers having ordinary skill in the art in light of thedescription provided here will appreciate that there are several similarvariations of the above basic strategy that can use the Compare functionto segment the banner into multiple sets.

One embodiment of the allocation algorithm is as follows. Defineconstant prop₁, prop₂, prop₃, . . . , prop_(r) such thatprop₁≧prop₂≧prop₃≧ . . . prop_(r). Prop_(j) represents the proportion oftotal impressions assigned to all the banners belonging to set j, where1≦j≦r. Let the number of banners belonging to set j be given by num_(j),where 1≦j≦r. (Note that the Sum of num_(j)=total number of banners).Then a banner belonging to set i is assigned the fraction of totalimpressions=Prop_(i)/{Σ_(1≦j≦r)(num_(j)×prop_(j))}.

Unlike the allocation strategy for two sets, the above allocation doesnot guarantee a fixed fraction of impressions to be allocated torelatively under-performing sets. However, it guarantees that bannersbelonging to relatively poor performing sets get smaller number ofimpressions as compared to relatively higher performing sets.

Those workers having ordinary skill in the art in light of thedescription provided here will appreciate that there are several similarvariations of the above basic strategy using the Z and V statistics forthe pair-wise comparisons which can be used for decomposing thealternatives into two or more sets.

Exemplary Simulation Experiments and Results

A suite of simulations on synthetic data were conducted to furtherverify and quantify the impact of different parameters for a large rangeof number of banners, number of targeting cells and impressions per day.Simulations of three types of data sets were conducted: “grouping isbest” data sets, “grouping is bad” data sets, and hybrid combinations ofthese two.

The “grouping is best” data sets were generated so that the banners'click-through rates were identical across all cells, and in this casefor the simulation data set grouping cells is the best strategy. For the“grouping is bad” data sets, the click-through rates were generated sothat each cell had a potentially different best banner. In these cases,optimizing for each cell separately showed to be the best strategy.Finally, in the hybrid data sets, it was not clear a priori with thedata used whether grouping is good or bad.

Simulations on data collected from fifteen buy campaigns were alsoconducted. The duration of each buy campaign was between two and fourweeks, and the following attributes were considered: country, browser,state, operating system, hour of the day, and service provider. Severalconclusions were drawn from these simulations. One result shows that themodel-comparison-based algorithms performed slightly better than theperformance-based algorithms. The model-comparison-based algorithms werealso computationally less intensive. When the number of impressions perday is large (data rich cases), the evolutionary targeting algorithmperformed close to the better of the two static algorithms for nearlyall the data sets. On rare occasions, the targeting algorithm beat bothalgorithms or performed worse than both algorithms. On the other hand,when the number of impressions per day is small (data sparse cases), theevolutionary targeting algorithm out performed the worse of the twostatic alternatives, and showed comparable performance to the better ofthe two static algorithms for nearly all the data sets. On rareoccasions, the evolutionary targeting algorithm beat both algorithms orperformed worse than both algorithms. For a given targeting variable, ifit is known that grouping or splitting is preferable, using evolutionarytargeting will generally reduce performance. However, evolutionarytargeting is an excellent compromise when it is not known whethersplitting or grouping is preferable. In the simulation, trying allpossible segmentations at each level of the recursion did not give asubstantial improvement of results for the evolutionary targetingalgorithm.

The results of simulation also showed that the targeting algorithm ismore robust than the alternatives, while sacrificing some performanceover the winner. Thus, embodiments of the inventive procedure andalgorithm provide a good way to adapt to the situation, since it givesgood performance, with a lower variance than the static alternatives.Buys with gain ratio statistics close to one (1.0) show that thetargeting algorithm has marginal, if any performance improvement, asexpected. In some cases, the targeting algorithm out-performed bothalternatives.

Visualizing the Performance Variation

An image plot was generated for each of the six attributes in all buycampaigns. Referring to FIG. 5, the x-axis distinguishes betweenbanners, while the y-axis distinguishes between cells. The click-throughrate matrix thus consists of numbers between zero and one, and thismatrix was scaled and shifted to give values between one and onehundred. This matrix was then plotted, where each banner-cell was givencorresponding gray scale intensity or level of shading. Hence, verticalbands that vary greatly in intensity (within the band) indicate that theclick-through rates of the associated banner vary over cells. Theintensity plots give some evidence that segmentation is a good idea forsome attributes. As described, there is significant variance ofintensity along vertical strips. The higher the gain ratio statistic,the more variance of intensity across cells.

Additional and Alternative Embodiments

It can therefore be seen from the above description that the inventivesystem and method provide particularly advantageous benefits in thebanner ad messaging context. As suggested throughout the description,the overall methodology as well as the procedures and algorithms may beapplied and extended to messaging situations and contexts other thanInternet banner advertising.

Electronic Mail

Email is an important medium for advertising and marketing. Manybusinesses now readily use email to acquire new customers, build brands,advertise and promote products, measure consumer satisfaction and managecustomer relationships. A typical email campaign involves sending emailsto each address on a list of recipients. The list may typically bebought or otherwise acquired from an outside firm or collectedinternally over a period of time. The procedures and algorithmsdeveloped above can be easily extended for optimizing the responsesgenerated by emails. A system and method for improving the performanceof Emails is described in U.S. patent application Ser. No. 09/586,394,filed Jun. 2, 2000 and entitled Optimizing The Performance of Email andOther Message Campaigns, which is hereby incorporated by reference.

Among the various alternative messaging situations, the inventivemethod, procedures and algorithms may, for example, be extended to theemail environment by decomposing the email process into multiple stages.In each stage a fraction of the total emails to be sent out to eachalternative is given by the allocation algorithm described above. Themajor difference in an email application as compared to the aforedescribed banner ad application is that there is typically a non-uniformdelay between the time an email is sent out and the time a response isreceived. (For banner ads this delay is either non-existent forpractical purposes or fairly uniform, for example the delay for a bannerad clickthrough may be between about 1 second and 60 seconds, wellwithin one stage.) However, one can measure the total number ofresponses received for a given email alternative by the end of a givenstage and the total number of emails sent for that alternative as a wayof measuring the performance of a given alternative. This informationcan then be used by the algorithm to determine and allocate the betterperforming alternatives and optimize the total number of responses overthe entire campaign. The duration of the stage should advantageously bechosen to ensure that a reasonable fraction of overall responses arereceived by the end of each stage and the number of stages are largeenough that the algorithm can learn the better performing alternativesin the earlier stages and exploit this information in later stages.

Each of the inventive methods, algorithms, and procedures may beimplemented as a computer program, also referred to as software orfirmware, programs or code, on a general purpose or specializedcomputer. Such computers routinely include a processor or CPU, a fastrandom access memory coupled to the processor in which is defined a datastructure storing program procedures and data associated with executingthe programs or procedures in the processor. Such procedures include theinventive state vector update, pair-wise comparison, and allocationprocedures, among other procedures described herein. An operating systemis also typically provided. When implemented as a computer program orsoftware or firmware, the invention also includes the program, software,and/or firmware in addition to a computer program product. Such computerprogram product may tangibly embody the computer program on a machinereadable medium such as a magnetic disc, CD-ROM, DVD, memory card,compact flash, Sony memory stick, or any other media, or be stored andcommunicated electronically. For example, the inventive computer programmay be communicated electronically or optically over a communicationlink, such as for example over the Internet.

It will also be clear in light of the description provided herein, thatthe various procedures and algorithms described herein may be usedseparately or in any combination.

The foregoing description, for purposes of explanation, used specificnomenclature to provide a thorough understanding of the invention.However, it will be apparent to one skilled in the art in light of thedescription provided that the specific details are not required in orderto practice the invention. Thus, the foregoing descriptions of specificembodiments of the present invention are presented for purposes ofillustration and description. They are not intended to be exhaustive orto limit the invention to the precise forms disclosed. Obviously manymodifications and variations are possible in view of the aboveteachings.

The embodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated. It is intended that the scope of theinvention be defined by the following claims and their equivalents. Allpatents, publication, or other references referred to herein are herebyincorporated by reference.

1-71. (canceled)
 72. A method for improving the performance ofadvertising messages in an interactive measurable medium, said methodcomprising: dividing visitors into segments based on the performance ofdifferent messages for different visitors; constructing a segmentation,based on the performance of message alternatives for different visitortypes, where visitors are classified by demographic or psychographicinformation along a number of attributes; and comparing differentsegmentations to determine which segmentation will lead to the maximumvisitor response.
 73. A computer program product for use in conjunctionwith a computer system, the computer program product comprising acomputer readable storage medium and a computer program mechanismembedded therein, the computer program mechanism, comprising: a programmodule that directs the computer system and/or components thereof, tofunction in a specified manner to improve the performance of advertisingmessages in an interactive measurable medium, the program moduleinstructions for: dividing visitors into segments based on theperformance of different messages for different visitors; constructing asegmentation, based on the performance of message alternatives fordifferent visitor types, where visitors are classified by demographic orpsychographic information along a number of attributes; and comparingdifferent segmentations to determine which segmentation will lead to themaximum visitor response.